import Taro from "@tarojs/taro";

export function sendAction<T extends ActionNames>(
  actionName: T,
  actionProperties?: ActionProperties[T]
): void {
  Taro.getApp().hxt.sendAction(actionName, actionProperties);
}

export type ActionProperties = {
  // Home ------------------------------------------------------
  // 首页_点击底部按钮
  [ActionNames.HomeBottomButtonClick]: {
    // 首页_点击底部按钮名称
    [ActionKeys.HomeBottomButtonName]: string;
  };

  // 首页_图_即刻探索
  [ActionNames.HomePicExploreClick]: {
    // 首页_内容名称
    [ActionKeys.HomeContentName]: string;
  };

  // 首页_模块导航_按钮
  [ActionNames.HomeModuleColumnClick]: {
    // 首页_模块导航按钮名称
    [ActionKeys.HomeModuleColumnButtonName]: string;
  };

  // 首页_曝光
  [ActionNames.HomeImpression]: {
    // 投放来源
    [ActionKeys.ChannelSource]: string;
  };

  // 首页_点击
  [ActionNames.HomeClick]: {
    // 内容名字
    [ActionKeys.ContentName]: string;
  };

  // Course 课程-列表页 ------------------------------------------------------
  // 探索页_点击顶部按钮
  [ActionNames.ExploreTopButtonClick]: {
    // 课程_列表页_顶部按钮名称
    [ActionKeys.CourseTopButtonName]: string;
  };

  // 课程页_点击左侧按钮
  [ActionNames.CourseLeftButtonClick]: {
    // 课程页_点击左侧按钮名称
    [ActionKeys.CourseLeftButtonName]: string;
  };

  // 课程页_点击课程内容
  [ActionNames.CourseContentClick]: {
    // 课程页_课程内容名称
    [ActionKeys.CourseContentName]: string;
    // 课程页_课程内容类别
    [ActionKeys.CourseContentType]: string;
  };

  // 点击客服
  [ActionNames.CustomerServiceClick]: {};

  // 课程页_点击筛选
  [ActionNames.CourseSelectClick]: {};

  // 课程页_点击应用
  [ActionNames.CourseApplyClick]: {
    // 课程日期
    [ActionKeys.CourseDate]: string;
    // 课程类型
    [ActionKeys.CourseType]: number[];
    // 课程语言
    [ActionKeys.CourseLanguage]: number[];
    // 课程价格
    [ActionKeys.CoursePrice]: number[];
    // 课程时长
    [ActionKeys.CourseDuration]: number[];
  };

  // 课程页_曝光
  [ActionNames.CourseImpression]: CourseDetailBasicTypes;

  // Course 课程-详情页 ------------------------------------------------------
  // 详情页_客服
  [ActionNames.DetailCustomerServiceClick]: {};

  // 详情页_喜欢
  [ActionNames.DetailLikeClick]: {};

  // 课程详情页_赠送课程
  [ActionNames.CourseDetailCourseClick]: CourseDetailTypes;

  // 详情页相关推荐
  [ActionNames.DetailRecommendClick]: {
    // 推荐类型
    [ActionKeys.SuggestionType]: string;
    // 推荐名称
    [ActionKeys.SuggestionName]: string;
  };

  // 课程详情页_曝光
  [ActionNames.CourseDetailImpression]: CourseDetailBasicTypes;

  // Course 课程-订单页 ------------------------------------------------------
  // 课程订单页_点击提交订单
  [ActionNames.CourseOrderSubmitClick]: CourseOrderDetailTypes;

  // 课程订单页_选择礼品卡
  [ActionNames.CourseOrderSelectGiftCardClick]: {};

  // 课程订单页_去支付
  [ActionNames.CourseOrderGoPayClick]: CourseOrderDetailTypes;

  // 订单页_返回首页
  [ActionNames.OrderBackHomeClick]: {};

  // 订单页_查看订单
  [ActionNames.OrderViewFormClick]: {};

  // 课程订单页_支付成功曝光
  [ActionNames.CourseOrderPaySuccessImpression]: CourseOrderDetailTypes;

  // Talk 讲座 ------------------------------------------------------
  // 讲座页_点击列表
  [ActionNames.TalkListClick]: {
    // 讲座类型
    [ActionKeys.TalkType]: string;
    // 讲座名称
    [ActionKeys.TalkName]: string;
    // 讲座日期
    [ActionKeys.TalkDate]: string;
  };

  // 讲座页_曝光
  [ActionNames.TalkImpression]: null;

  // 讲座详情页_预约讲座
  [ActionNames.TalkDetailReserveClick]: {
    // 讲座类型
    [ActionKeys.TalkType]: string;
    // 讲座名称
    [ActionKeys.TalkName]: string;
    // 讲座时间
    [ActionKeys.TalkTime]: string;
    // 讲座时长
    [ActionKeys.TalkDuration]: string;
    // 可选语言
    [ActionKeys.TalkLanguage]: string;
    // 观看平台
    [ActionKeys.TalkPlatform]: string;
  };

  // 详情页可能喜欢
  [ActionNames.DetailMaybeLikeClick]: {
    // 可能喜欢产品
    [ActionKeys.MaybeLikeSku]: string;
    // 可能喜欢类型
    [ActionKeys.MaybeLikeType]: string;
  };

  // 讲座详情页_曝光
  [ActionNames.TalkDetailImpression]: TalkDetailBasicTypes;

  // 线上讲座预约页_预约讲座
  [ActionNames.OnlineTalkBookDetailClick]: {
    // 线上讲座名称
    [ActionKeys.OnlineTalkName]: string;
    // 线上讲座状态
    [ActionKeys.OnlineTalkStatus]: number;
  };

  // 线上讲座订单确认页_确认预约讲座
  [ActionNames.OnlineTalkOrderSubmitClick]: TalkOrderDetailTypes & {
    // 观看平台
    [ActionKeys.TalkPlatform]: string;
  };

  // 线下讲座订单确认页_提交订单
  [ActionNames.OfflineTalkOrderSubmitClick]: OfflineTalkOrderDetailTypes;

  // 线下讲座订单确认页_选择礼品卡
  [ActionNames.OfflineTalkOrderSelectGiftCardClick]: {};

  // 线下讲座订单_支付成功曝光
  [ActionNames.OfflineTalkOrderPaySuccessImpression]: OfflineTalkOrderDetailTypes;

  // 线下讲座_重新预约
  [ActionNames.OfflineConversationDetailReserveAgainClick]: TalkDetailTypes;

  // 出示预约码
  [ActionNames.OfflineShowId]: TalkDetailTypes;

  // 线下讲座订单_去支付
  [ActionNames.OfflineTalkOrderGoPayClick]: OfflineTalkOrderDetailTypes;

  // Exhibition 展览 ------------------------------------------------------
  // 展览页_了解更多
  [ActionNames.ExhibitionKnowMoreClick]: ExhibitionDetailBasicTypes & {
    // 展览日期
    [ActionKeys.ExhibitionTime]: string;
  };

  // 展览页_全球概览
  [ActionNames.ExhibitionGlobeOverviewClick]: ExhibitionDetailBasicTypes;

  // 展览页_曝光
  [ActionNames.ExhibitionImpression]: null;

  // 展览详情页_点击官网链接
  [ActionNames.ExhibitionDetailWebLinkClick]: {
    // 展览日期
    [ActionKeys.ExhibitionName]: string;
    [ActionKeys.ExhibitionLocation]: string;
    [ActionKeys.ExhibitionPrice]: string;
    [ActionKeys.ExhibitionDate]: string;
    [ActionKeys.ExhibitionTime]: string;
    [ActionKeys.ExhibitionLanguage]: string;
  };

  // 展览详情页_曝光
  [ActionNames.ExhibitionDetailImpression]: ExhibitionDetailBasicTypes;

  //
  [ActionNames.ExhibitionOrderSubmitClick]: ExhibitionOrderDetailTypes;

  // 展览订单页_加购
  [ActionNames.ExhibitionOrderAddClick]: {};

  // 展览订单页_支付成功曝光
  [ActionNames.ExhibitionOrderPaySuccessImpression]: ExhibitionOrderDetailTypes;

  // 展览订单页_选择礼品卡
  [ActionNames.ExhibitionOrderSelectGiftCardClick]: null;

  [ActionNames.ExhibitionOrderGoPayClick]: ExhibitionOrderDetailTypes;

  // Publication 出版物 ------------------------------------------------------
  // 出版物页_列表
  [ActionNames.PublicationListClick]: PublicationDetailBasicTypes;

  // 出版物页_曝光
  [ActionNames.PublicationImpression]: {};

  // 出版物详情页_加入购物车
  [ActionNames.PublicationDetailAddShopClick]: PublicationDetailBasicTypes;

  // 出版物详情页_立即购买
  [ActionNames.PublicationDetailShopNowClick]: PublicationDetailBasicTypes;

  // 出版物详情页_曝光
  [ActionNames.PublicationDetailImpression]: {
    // 出版物名称
    [ActionKeys.PublicationName]: string;
  };

  // About 关于 ------------------------------------------------------
  // 关于我们_内容板块
  [ActionNames.AboutUsContentPartClick]: {
    // 关于我们板块名称
    [ActionKeys.AboutUsPartName]: string;
  };

  // 关于我们_曝光
  [ActionNames.AboutUsImpression]: null;

  // 关于我们_中心
  [ActionNames.AboutUsCenterClick]: {
    // 永久中心名字
    [ActionKeys.FixedCenterName]: string;
  };

  // 关于我们_海外
  [ActionNames.AboutUsOverseasClick]: {
    // 海外中心名字
    [ActionKeys.OverseasCenterName]: string;
  };

  // Calendar 日历 ------------------------------------------------------
  // 日程表页_点击列表板块
  [ActionNames.CalendarListClick]: {
    // 日程表页_类别
    [ActionKeys.CalendarType]: string;
    // 日程表页_名称
    [ActionKeys.CalendarName]: string;
    // 日程表页_日期
    [ActionKeys.CalendarDate]: string;
    // 日程表页_时间
    [ActionKeys.CalendarTime]: string;
  };

  // 日程表页_曝光
  [ActionNames.CalendarImpression]: null;

  // 日程表页_生日石
  [ActionNames.CalendarStoneClick]: null;

  // 日程表页_了解更多
  [ActionNames.CalendarKnowMoreClick]: {
    // 生日石名称
    [ActionKeys.BirthStoneName]: string;
  };

  // 日程表页_栏目
  [ActionNames.CalendarColumnClick]: {
    // 栏目名称
    [ActionKeys.ColumnName]: string;
  };

  // SHOP ------------------------------------------------------
  // 商品列表页_礼品卡_查看更多
  [ActionNames.ShopListGiftCardReadMoreClick]: null;

  // 商品列表页_礼品卡
  [ActionNames.ShopListGiftCardClick]: GiftCardDetailBasicTypes;

  // 商品列表页_纪念品_查看更多
  [ActionNames.ShopListSouvenirReadMoreClick]: null;

  // 商品列表页_纪念品
  [ActionNames.ShopListSouvenirClick]: SouvenirDetailBasicTypes;

  // 商品列表页_出版物_查看更多
  [ActionNames.ShopListPublicationReadMoreClick]: null;

  // 商品列表页_出版物
  [ActionNames.ShopListPublicationClick]: {
    [ActionKeys.PublicationType]: string;
    [ActionKeys.PublicationName]: string;
    [ActionKeys.PublicationAmount]: string;
  };

  // 商品列表页_曝光
  [ActionNames.ShopListImpression]: null;

  // 礼品卡列表页_产品
  [ActionNames.GiftCardListSkuClick]: GiftCardDetailBasicTypes;

  // 礼品卡列表页_曝光
  [ActionNames.GiftCardListImpression]: null;

  // 礼品卡详情页_加入购物车
  [ActionNames.GiftCardDetailAddShopClick]: GiftCardDetailBasicTypes;

  // 礼品卡详情页_立即购买
  [ActionNames.GiftCardDetailBuyClick]: GiftCardDetailBasicTypes;

  // 礼品卡详情页_曝光
  [ActionNames.GiftCardDetailImpression]: Omit<
    GiftCardDetailBasicTypes,
    ActionKeys.GiftCardAmount
  >;

  // 纪念品列表页_产品
  [ActionNames.SouvenirListSkuClick]: SouvenirDetailBasicTypes;

  // 纪念品列表页_曝光
  [ActionNames.SouvenirListImpression]: null;

  // 纪念品详情页_加入购物车
  [ActionNames.SouvenirListDetailAddShopClick]: SouvenirDetailBasicTypes;

  // 纪念品详情页_立即购买
  [ActionNames.SouvenirListDetailBuyClick]: SouvenirDetailBasicTypes;

  // 纪念品详情页_曝光
  [ActionNames.SouvenirListDetailImpression]: Omit<
    SouvenirDetailBasicTypes,
    ActionKeys.SouvenirAmount
  >;

  // 购物车页_提交订单
  [ActionNames.ShoppingCartSubmitClick]: OrderTypes;

  // 购物车页_曝光
  [ActionNames.ShoppingCartImpression]: null;

  // 结算页_确认付款
  [ActionNames.SkuPayConfirmPaymentClick]: PaymentTypes;

  // 结算页_曝光
  [ActionNames.SkuPayImpression]: null;

  // 结算页_付款成功_曝光
  [ActionNames.SkuPaySuccessClick]: PaymentTypes;

  // Me ------------------------------------------------------
  // 我的列表页_个人详情
  [ActionNames.MyListPersonalClick]: null;

  // 我的列表页_会员码
  [ActionNames.MyListCodeClick]: null;

  // 购物车
  [ActionNames.ShoppingCartClick]: null;

  // 我的列表页_礼品卡
  [ActionNames.MyListGiftCardClick]: null;

  // 我的列表页_我的收藏
  [ActionNames.MyListLikeClick]: null;

  // 我的列表页_我的内容
  [ActionNames.MyListContentClick]: {
    [ActionKeys.ContentName]: string;
  };

  // 我的列表页_其他
  [ActionNames.MyListOthersClick]: {
    [ActionKeys.OthersName]: string;
  };

  // 我的列表页_曝光
  [ActionNames.MyListImpression]: null;

  // 开发票
  [ActionNames.MakeInvoice]: null;
};

export enum ActionNames {
  // Home
  HomeBottomButtonClick = "home_bottom_button_click", // 首页_点击底部按钮
  HomePicExploreClick = "home_pic_explore_click", // 首页_图_即刻探索
  HomeModuleColumnClick = "home_module_column_click", // 首页_模块导航_按钮
  HomeImpression = "home_impression", // 首页_曝光
  HomeClick = "home_click", // 首页_点击

  // Course 课程-列表页
  ExploreTopButtonClick = "explore_top_button_click",
  CourseLeftButtonClick = "course_left_button_click",
  CourseContentClick = "course_content_click",
  CustomerServiceClick = "customer_service_click",
  CourseSelectClick = "course_select_click",
  CourseApplyClick = "course_apply_click",
  CourseImpression = "course_impression",

  // Course 课程-详情页
  DetailCustomerServiceClick = "detail_customer_service_click",
  DetailLikeClick = "detail_like_click",
  CourseDetailCourseClick = "course_detail_course_click",
  DetailRecommendClick = "detail_recommend_click",
  CourseDetailImpression = "course_detail_impression",

  // Course 课程-订单页
  CourseOrderSubmitClick = "course_order_submit_order_click",
  CourseOrderSelectGiftCardClick = "course_order_select_gift_card_click",
  CourseOrderGoPayClick = "course_order_go_pay_click",
  OrderBackHomeClick = "order_back_home_click",
  OrderViewFormClick = "order_view_form_click",
  CourseOrderPaySuccessImpression = "course_order_pay_success_impression",

  // Talk 讲座
  TalkListClick = "conversation_list_click",
  TalkImpression = "conversation_impression",
  TalkDetailReserveClick = "conversation_detail_reserve_click",
  DetailMaybeLikeClick = "detail_maybe_like_click",
  TalkDetailImpression = "conversation_detail_impression",
  OnlineTalkBookDetailClick = "online_conversation_book_detail_click",
  OnlineTalkOrderSubmitClick = "online_conversation_order_submit_click",
  OfflineTalkOrderSubmitClick = "offline_conversation_order_submit_click",
  OfflineTalkOrderSelectGiftCardClick = "offline_conversation_order_select_gift_card_click",
  OfflineTalkOrderPaySuccessImpression = "offline_conversation_order_pay_success_impression",
  OfflineConversationDetailReserveAgainClick = "offline_conversation_detail_reserve_again_click",
  OfflineShowId = "offline_show_id",
  OfflineTalkOrderGoPayClick = "offline_conversation_order_go_pay_click",

  // exhibition 展览
  ExhibitionKnowMoreClick = "exhibition_know_more_click",
  ExhibitionGlobeOverviewClick = "exhibition_globe_overview_click",
  ExhibitionImpression = "exhibition_impression",
  ExhibitionDetailWebLinkClick = "exhibition_detail_web_link_click",
  ExhibitionDetailImpression = "exhibition_detail_impression",
  ExhibitionOrderSubmitClick = "exhibition_order_submit_click",
  ExhibitionOrderAddClick = "exhibition_order_add_click",
  ExhibitionOrderPaySuccessImpression = "exhibition_order_pay_success_impression",
  ExhibitionOrderSelectGiftCardClick = "exhibition_order_select_gift_card_click",
  ExhibitionOrderGoPayClick = "exhibition_order_go_pay_click",

  // Publication 出版物
  PublicationListClick = "publication_list_click",
  PublicationImpression = "publication_impression",
  PublicationDetailAddShopClick = "publication_detail_add_shop_click",
  PublicationDetailShopNowClick = "publication_detail_shop_now_click",
  PublicationDetailImpression = "publication_detail_impression",

  // About 关于
  AboutUsContentPartClick = "about_us_content_part_click",
  AboutUsImpression = "about_us_impression",
  AboutUsCenterClick = "about_us_center_click",
  AboutUsOverseasClick = "about_us_overseas_click",

  // Calendar 日历
  CalendarListClick = "calendar_list_click",
  CalendarImpression = "calendar_impression",
  CalendarStoneClick = "calendar_stone_click",
  CalendarKnowMoreClick = "calendar_know_more_click",
  CalendarColumnClick = "calendar_column_click",

  // Shop
  ShopListGiftCardReadMoreClick = "shop_list_gift_card_read_more_click",
  ShopListGiftCardClick = "shop_list_gift_card_click",
  ShopListSouvenirReadMoreClick = "shop_list_souvenir_read_more_click",
  ShopListSouvenirClick = "shop_list_souvenir_click",
  ShopListPublicationReadMoreClick = "shop_list_publication_read_more_click",
  ShopListPublicationClick = "shop_list_publication_click",
  ShopListImpression = "shop_list_impression",

  GiftCardListSkuClick = "gift_card_list_sku_click",
  GiftCardListImpression = "gift_card_list_impression",
  GiftCardDetailAddShopClick = "gift_card_detail_add_shop_click",
  GiftCardDetailBuyClick = "gift_card_detail_buy_click",
  GiftCardDetailImpression = "gift_card_detail_impression",

  SouvenirListSkuClick = "souvenir_list_sku_click",
  SouvenirListImpression = "souvenir_list_impression",
  SouvenirListDetailAddShopClick = "souvenir_list_detail_add_shop_click",
  SouvenirListDetailBuyClick = "souvenir_list_detail_buy_click",
  SouvenirListDetailImpression = "souvenir_list_detail_impression",

  ShoppingCartSubmitClick = "shopping_cart_submit_click",
  ShoppingCartImpression = "shopping_cart_impression",
  SkuPayConfirmPaymentClick = "sku_pay_confirm_payment_click",
  SkuPayImpression = "sku_pay_impression",
  SkuPaySuccessClick = "sku_pay_success_click",

  // Me
  MyListPersonalClick = "my_list_personal_click",
  MyListCodeClick = "my_list_code_click",
  ShoppingCartClick = "shopping_cart_click",
  MyListGiftCardClick = "my_list_gift_card_click",
  MyListLikeClick = "my_list_like_click",
  MyListContentClick = "my_list_content_click",
  MyListOthersClick = "my_list_others_click",
  MyListImpression = "my_list_impression",
  MakeInvoice = "make_invoice",
}

export enum ActionKeys {
  // Home
  HomeBottomButtonName = "home_bottom_button_name", // 首页_点击底部按钮名称
  HomeContentName = "home_content_name", // 首页_内容名称
  HomeModuleColumnButtonName = "home_module_column_button_name", // 首页_模块导航按钮名称
  ChannelSource = "channel_source", // 投放来源
  ContentName = "content_name", // 内容名字

  // Course 课程
  CourseTopButtonName = "course_top_button_name",
  CourseLeftButtonName = "course_left_button_name",
  CourseContentName = "course_content_name",
  CourseContentType = "course_content_type",
  CourseDate = "course_date",
  CourseType = "course_type",
  CourseLanguage = "course_language",
  CoursePrice = "course_price",
  CourseDuration = "course_duration",
  CourseName = "course_name",
  CoursePeopleNumber = "course_people_number",
  CourseLocation = "course_location",
  SuggestionName = "suggestion_name",
  SuggestionType = "suggestion_type",
  ReservePeopleNumber = "reserve_people_number",
  GiftCardAmount = "gift_card_amount",
  GiftCardType = "gift_card_type",
  TotalAmount = "total_amount",
  StudentName = "student_name",
  StudentPhoneNumber = "student_phone_number",

  // Talk 讲座
  TalkType = "conversation_type",
  TalkName = "conversation_name",
  TalkDate = "conversation_date",
  TalkTime = "conversation_time",
  TalkDuration = "conversation_duration",
  TalkLanguage = "conversation_language",
  TalkPlatform = "conversation_platform",
  MaybeLikeSku = "maybe_like_sku",
  MaybeLikeType = "maybe_like_type",
  OnlineTalkName = "online_conversation_name",
  OnlineTalkStatus = "online_conversation_status",
  TalkLocation = "conversation_location",
  TalkBookName = "conversation_book_name",
  TalkBookPhoneNumber = "conversation_book_phone_number",

  // exhibition 展览
  ExhibitionName = "exhibition_name",
  ExhibitionTime = "exhibition_time",
  ExhibitionLocation = "exhibition_location",
  ExhibitionPrice = "exhibition_price",
  ExhibitionDate = "exhibition_date",
  ExhibitionLanguage = "exhibition_language",
  ExhibitionType = "exhibition_type",
  PublishSku = "publish_sku",
  PublishSkuNumber = "publish_sku_number",

  // Publication 出版物
  PublicationName = "publication_name",
  PublicationPrice = "publication_price",

  // About 关于
  AboutUsPartName = "about_us_part_name",
  FixedCenterName = "fixed_center_name",
  OverseasCenterName = "overseas_center_name",

  // Calendar 日历
  CalendarType = "calendar_type",
  CalendarName = "calendar_name",
  CalendarDate = "calendar_date",
  CalendarTime = "calendar_time",
  BirthStoneName = "birth_stone_name",
  ColumnName = "column_name",

  // Shop 商店
  GiftCardName = "gift_card_name",
  SouvenirType = "souvenir_type",
  SouvenirName = "souvenir_name",
  SouvenirAmount = "souvenir_amount",
  PublicationType = "publication_type",
  PublicationAmount = "publication_amount",
  SkuAttribute = "sku_attribute",
  SkuType = "sku_type",
  SkuName = "sku_name",
  SkuNumber = "sku_number",
  SkuAmount = "sku_amount",
  TotalNumber = "total_number",
  CustomerName = "customer_name",
  CustomerPhone = "customer_phone",
  CustomerLocation = "customer_location",

  // Me
  OthersName = "others_name",
}

type CourseDetailBasicTypes = {
  // 课程类型
  [ActionKeys.CourseType]: string;
  // 课程名称
  [ActionKeys.CourseName]: string;
};

type CourseDetailTypes = CourseDetailBasicTypes & {
  // 课程日期
  [ActionKeys.CourseDate]: string;
  // 课程语言
  [ActionKeys.CourseLanguage]: string;
  // 课程地点
  [ActionKeys.CourseLocation]: string;
};

type CourseOrderDetailTypes = CourseDetailTypes & {
  // 预约人数
  [ActionKeys.CoursePeopleNumber]: string;
  // 礼品卡金额
  [ActionKeys.GiftCardAmount]: string;
  // 礼品卡类别
  [ActionKeys.GiftCardType]: string;
  // 总金额
  [ActionKeys.TotalAmount]: string;
  // 学员姓名
  [ActionKeys.StudentName]: string;
  // 学员手机号
  [ActionKeys.StudentPhoneNumber]: string;
};

type TalkDetailBasicTypes = {
  // 讲座类型
  [ActionKeys.TalkType]: string;
  // 讲座名称
  [ActionKeys.TalkName]: string;
};

type TalkDetailTypes = TalkDetailBasicTypes & {
  [ActionKeys.TalkDate]: string;
  [ActionKeys.TalkDuration]: string;
  [ActionKeys.TalkLanguage]: string;
  [ActionKeys.TalkPlatform]: string;
};

type TalkOrderDetailTypes = TalkDetailBasicTypes & {
  // 预约时间
  [ActionKeys.TalkTime]: string;
  // 讲座语言
  [ActionKeys.TalkLanguage]: string;
  // 讲座地点
  [ActionKeys.TalkLocation]: string;
  // 预约讲座人员
  [ActionKeys.TalkBookName]: string;
  // 预约讲座人员电话
  [ActionKeys.TalkBookPhoneNumber]: string;
};

type OfflineTalkOrderDetailTypes = TalkOrderDetailTypes & {
  // 预约人数
  [ActionKeys.ReservePeopleNumber]: string;
  // 礼品卡金额
  [ActionKeys.GiftCardAmount]: string;
  // 礼品卡类别
  [ActionKeys.GiftCardType]: string;
  // 总金额
  [ActionKeys.TotalAmount]: string;
};

type ExhibitionDetailBasicTypes = {
  // 展览名称
  [ActionKeys.ExhibitionName]: string;
  // 展览地点
  [ActionKeys.ExhibitionLocation]: string;
};

type ExhibitionDetailTypes = ExhibitionDetailBasicTypes & {
  // 展览时间
  [ActionKeys.ExhibitionTime]: string;
  // 展览语言
  [ActionKeys.ExhibitionLanguage]: string;
  // 展览类型
  [ActionKeys.ExhibitionType]: string;
};

type ExhibitionOrderDetailTypes = ExhibitionDetailTypes & {
  // 预约人数
  [ActionKeys.ReservePeopleNumber]: string;
  // 总金额
  [ActionKeys.TotalAmount]: string;
  // 人员姓名
  [ActionKeys.StudentName]: string;
  // 加购产品
  [ActionKeys.PublishSku]: string;
  // 加购产品数量
  [ActionKeys.PublishSkuNumber]: string;
  // 人员手机号
  [ActionKeys.StudentPhoneNumber]: string;
};

type PublicationDetailBasicTypes = {
  // 出版物名称
  [ActionKeys.PublicationName]: string;
  // 出版物价格
  [ActionKeys.PublicationPrice]: string;
};

type GiftCardDetailBasicTypes = {
  // 礼品卡类型
  [ActionKeys.GiftCardType]: string;
  // 礼品卡名称
  [ActionKeys.GiftCardName]: string;
  // 礼品卡金额
  [ActionKeys.GiftCardAmount]: string;
};

type SouvenirDetailBasicTypes = {
  // 纪念品类型
  [ActionKeys.SouvenirType]: string;
  // 纪念品名称
  [ActionKeys.SouvenirName]: string;
  // 纪念品金额
  [ActionKeys.SouvenirAmount]: string;
};

type OrderTypes = {
  // 商品属性
  [ActionKeys.SkuAttribute]: {
    // 商品类型
    [ActionKeys.SkuType]: string;
    // 商品名称
    [ActionKeys.SkuName]: string;
    // 商品数量
    [ActionKeys.SkuNumber]: string;
    // 商品价格
    [ActionKeys.SkuAmount]: string;
  }[];
  // 总价
  [ActionKeys.TotalAmount]?: string;
};

type PaymentTypes = OrderTypes & {
  // 总数量
  [ActionKeys.TotalNumber]?: string;
  // 顾客姓名
  // [ActionKeys.CustomerName]: string;
  // 顾客电话
  // [ActionKeys.CustomerPhone]: string;
  // 顾客地址
  // [ActionKeys.CustomerLocation]: string;
};
